Merge weBIGeo#234
Conversation
- includes also buffer to texture node rewrite
- uv/position/weight calculations should be finally correct now
- for experimental implementation of multi-flow models using a sequence of compute shader calls
Note: Seems to be buggy for overlay texture
- convert our single-direction trajectory model to a monte-carlo method by randomly offsetting the sampled normal each step for simulating divergence/"spread" of the avalanche - still WIP, need to expose some parameters as uniforms esp. sample count and offset radius
- dispatch more workgroups instead of looping over samples in shader
- eliminates annoying white trajectories per default
What we did in the meeting.
- this needs to be fixed in the model
* removes: ALP_WEBGPU_APP_ENABLE_IMGUI * refactor: new shader directives with namespaces * add: moves utility shaders into the webgpu target * add: creates logic for MipMapCreation and utility shaders in webgpu target * refactor: moves OverlayRenderNode into webgpu_app * refactor: creates new webgpu_compute target and moves GpuTileId into nucleus * add: shader cleanup * add: make NodeRenderer optional for the NodeRenderer * add: platform independent file upload ImGuiStyle defined in ImGuiManager * fix: No MipMaps for BufferToTextureNode * add: gui changes on overlay panel * fix: overlay wipe with unloaded textureoverlay * fix: BufferToTextureNode crashes on successive runs * refactor: autoformat
* add: some commentary updates * refactor: restructure app dir layout * refactor: moves easing into nucleus * add: serialization/unserialization code for Nodes * add: serialize nodegraph functionality with ui layer * add: load functionality for NodeGraph * add: packed default graphs * add: node cleanup * add: add_node functionality * add: new graph functionality * removes: node animations * add: confirmation dialog for auto-layout * add: functionality to remove nodes * remove: unnecessary set_enabled_for_nodes_with_name function * add: removes node size estimation and fixes shrinking bug * add: hotkeys and menu changes * add: spawn new nodes at modal position * fix: node interaction when changing settings * add: node renaming and smaller graph font size * fix: issue with smaller font size * add: make small font optional * removes: NodeGraph name * add: updated presets * refactor: autoformat * refactor: root directory cleanup * fix: fixes serve_wasm python script * fix: missed second path
* fix: ktx and ktx_read build directory * moves. binary docs and adds stub for webgpu-app.md * add: Readme based on upstream * add: round shape for library * add: show only top level dependencies in graph * add: diagram to explain webgpu_app * add: doc for webgpu_engine * add: minify rendering pipeline * add: documentation for webgpu_base * add: links to Readme * add: simplification for webgpu_app_dev * add: test cmake targets to documentation
# Conflicts: # .gitignore # CMakeLists.txt # README.md
Develop Merge
* add: removes hardcoded avalanche disclaimer * add: removes all <format> uses (no gcc support) * add: removes failing roundtrip test * fix: case insensitive QDebug
removes: gpx_tracks and disables webgpu targets for ci pipelines
fix: fixes cmake presets and adds alp-base
…arder to select on ci runs
…ths yet, but one step at a time..
* add: status and fadeout for spinner * add: more contrast logo * add: analyze_wasm script and puts nucleus ressources behind proper flag * add: ImGuiFileDialog only for native build
Minor shell gui changes
* Enable WebGPU app artifacts in CI deploy * Guard Windows WebGPU app library pragma * Fix WebGPU vertex format assertion for GCC * Treat WebGPU timestamp query as optional * Install Xlib XCB headers for Linux CI * Retry WebGPU device without timestamp queries * Load WebGPU app script once * Suppress WebGPU app asyncify unwind rejection * Pin Windows CI aqtinstall source * Pin Windows CI aqtinstall source * ignore++ * rename binary docs to project reports
There was a problem hiding this comment.
@GeraldKimmersdorfer @pkomon how much badness does this cause in webigeo?
iirc this is necessary in the alpine app to place the pivot point for some of the interaction methods.
There was a problem hiding this comment.
delete instead of comment
There was a problem hiding this comment.
well, use Q_ASSERT (https://doc.qt.io/qt-6/qtassert.html)
There was a problem hiding this comment.
the opengl version uses nucleus::srs::pack(tile.id) -> glm::vec<2, uint32_t>, which is more efficient and works until zoomlevel 29 (according to chatgpt). i therefore think that this class should not exist.
if you want to keep it, please move it into webigeo. but i would rather suggest replacing it with pack and unpack.
There was a problem hiding this comment.
the convention would be to remove the stb_ prefix from all files inside the stb directory.
There was a problem hiding this comment.
you switched this file to windows line endings. fix your git setup, use linux line endings!
There was a problem hiding this comment.
move this ktx setup to cmake/SetupKTX.cmake to clean up the main CMakeLists file. make a function that takes the commitish, and does the rest of the setup. this should be easy for an llm.
|
|
||
| ########################################### dependencies ################################################# | ||
| find_package(Qt6 REQUIRED COMPONENTS Core Gui OpenGL Network Quick QuickControls2 LinguistTools) | ||
| qt_standard_project_setup(REQUIRES 6.8) |
There was a problem hiding this comment.
can we set the min version to qt 6.10 or 6.11?
There was a problem hiding this comment.
i'm not against providing a cmake preset, but this one should be cleaned up.
there are hard coded paths, alp-base sounds strange in the context of the upstream repo, generally, there is a ton of targets.
imo:
- remove the release stuff, and let CI build that (you can download the artefacts).
- make targets like webgpu_* and webgl_*
- remove all hardcoded paths (they will break at some point), and rely on the environment. if that doesn't work, instruct the user on how to specify it locally.
| ## Code style | ||
| * class names are CamelCase, method, function and variable names are snake_case. | ||
| * class attributes have an m_ prefix and are usually private, struct attributes don't and are usually public. | ||
| * use `void set_attribute(int value)` and `int attribute() const` for setters and getters (that is, avoid the get_). Use [the Qt recommendations](https://wiki.qt.io/API_Design_Principles#Naming_Boolean_Getters,_Setters,_and_Properties) for naming boolean getters. |
There was a problem hiding this comment.
why did you remove the link?
| * indent with space only, indent 4 spaces | ||
| * ideally, use the clang-format file provided with the project | ||
| (in case you use Qt Creator, go to Preferences -> C++ -> Code Style: Formatting mode: Full, Format while typing, Format edited code on file save, don't override formatting) | ||
| * follow the [Qt recommendations](https://wiki.qt.io/API_Design_Principles) and the [c++ core guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines) everywhere else. |
There was a problem hiding this comment.
why did you remove the link?
No description provided.